package com.laysonx.data.police.handler;

import com.laysonx.data.police.annotation.DataPoliceHelper;
import com.laysonx.data.police.annotation.EnableDataVerify;
import com.laysonx.data.police.constant.Constant;
import org.aopalliance.intercept.MethodInvocation;

/**
 * 默认验证后处理方式
 * @author: Laysonx
 * @date: 2019/10/22 15:33
 */
@DataPoliceHelper
public abstract class AbstractDisposeHandler implements DisposeHandler {

    /**
     * 待处理的数据对象
     * @author: Laysonx
     * @date: 2019/9/29 15:35
     * @return: java.lang.Class 验证的数据对象
     */
    @Override
    public abstract Class<?> getTargetClass();

    /**
     * 验证后处理逻辑
     *
     * @author: Laysonx
     * @date: 2019/10/22 16:33
     * @param verifySuccess 验证成功
     * @param invocation 切点数据
     * @param enableDataVerify 接口注解信息
     * @return: void
     */
    @Override
    public abstract void dispose(Boolean verifySuccess, MethodInvocation invocation, EnableDataVerify enableDataVerify);

    /**
     * 当前target对应的tag标签
     * @author: laysonx
     * @date: 2019/11/4 10:24
     * @param
     * @return: java.lang.String Tag标签 默认 DEFAULT
     */
    @Override
    public String getTag() {
        return Constant.DEFAULT_TAG;
    }
}
